home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Info-Mac 4
/
Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso
/
Development
/
General
/
DR1.#1 PPC C⁄C++ ƒ
/
MW C⁄C++ PPC 1.0a2 Notes
< prev
next >
Wrap
Text File
|
1994-02-10
|
4KB
|
85 lines
Metrowerks C/C++ PowerPC Compiler Release Notes
=================================================
Version: 1.0a2
Date: February 7, 1994
Author: John McEnerney
This version fixes a few bugs and adds some features that have been requested.
It includes the following changes from the 1.0d12 version on the CD-ROM:
1. You can now import XCOFF shared libraries (e.g. Quicktime.xcoff) directly;
previously, you needed to use the makePEF tool to convert them to PEF format.
When a shared library name is coped into the PEF executable, any extension
is stripped off, e.g. "Quicktime.xcoff" becomes "Quicktime" which must be
available at runtime.
2. "Weak" linking of imports from shared libraries is supported. If the name of
an imported shared library (PEF or XCOFF) begins with "~" (tilde) then the
library is not required to be present at runtime. Your program should check
the existence of the shared library before attempting to call any of its routines.
(The naming convention is a admittedly a hack, but it was a quick & easy way
to support a needed feature without changing the environment or user interface)
There is currently no mechanism for marking an individual name as "weak".
3. A linker bug which prevented a C++ program from providing its own operator new()
wchih supersedes the one in MWCRuntime.lib was fixed.
4. Some serious register allocation bugs with Global Optimization were fixed. If
any programs still crash with Global Optimization, please let me know ASAP.
5. The linker now retains the Finder icon location of an application and link map
when a program is relinked. Previously, the old files were deleted along with their
Finder info.
6. The +=, *=, /= and -= operators no longer give an Internal Compiler Error #6 when
the rhs is a floating-point type and the lhs is an integer. The PowerPC compiler
should now pass the ANSI conformance suite completely.
7. The code generator uses a more optimal ordering of the instructions in the prologue
and epilogue to avoid some load delays.
8. Some redundant sign- and zero-extensions have been eliminated in the generated code.
9. CMPLI and CMPI instructions are now eliminated when comparing with an immediate 0
following an instruction which has a record (Rc == 1) mode. This optimization
is only performed if "Peephole Optimization" is selected in the Preferences.
10. The linker now generates more compact PEF relocations for C++ vtables. This can
reduce the size of a final application measurably (saves 6K for the Muscle demo).
11. The code generator now optimizes BRA-BLR and BC-BLR sequences.
12. C++ pointers-to-members are now implemented. This version should implement the
C++ language exactly as MW C/C++ 68K 1.0a1, except that inline functions are
not inlined.
13. Several instruction scheduling bugs were fixed, and the scheduler was improved.
14. You can now interrupt the linker with Command-Period.
15. The Quickdraw globals "qd" are now defined in MWCRuntime.lib. If you are already
declaring them in your source code, you'll get a non-fatal linker warning.
NOTE: You should replace the older MWCRuntime.o with the new MWCRuntime.lib.
NOTE: This version will cause your Linker preferences to be reset to the factory
defaults. You should check your Linker preferences when opening a project.
16. A serious bug that occurred when copying large structs has been fixed; this
one usually only showed up with Global Optimization on.
17. Some minor bugs in the PEF container format were fixed. In addition, the linker
no longer outputs a 'SIZE'(-1) resource for a shared library.
This version is a candidate Alpha. Any serious bugs should be reported ASAP. We
will arrange to have this version distributed widely if no serious bugs are found.
John McEnerney, Metrowerks PowerPC Product Architect
AppleLink: MCENERNEY
Internet: johnmce@world.std.com